﻿// MainCtrl
ctrls.controller('MainCtrl', function ($scope, $http, $routeParams, $location) {
    /* Định nghĩa biến toàn cục */
    $scope.data = {};
    $scope.strings = {};
    $scope.style = {};
    $scope.variable = {};
    // Gán giá trị init
    $scope.style.RightPane = {};
    $scope.variable.ShowLeftPane = true;
    $scope.variable.TreeOptions = { nodeChildren: 'Childs', dirSelectable: false };
    /* Định nghĩa phương thức xử lý */
    // Xử lý lấy chuỗi resource
    $scope.getStrings = function () {
        $pc(function () {
            $scope.strings = {
                Title: $nm('ADM.MAIN.Title'),
                Hi: $nm('ADM.MAIN.Hi'),
                Profile: $nm('ADM.MAIN.Profile'),
                Logout: $nm('ADM.MAIN.Logout')
            };
        });
    };
    // Xử lý init
    $scope.init = function () {
        $pc({
            http: $http,
            url: '/ajx/adm-main.aspx/InitLayout',
            data: {},
            success: function (data) {
                if (!$dataHelper.toBoolean(data.HasAuth)) {
                    window.location = '/adm/login.html';
                } else {
                    $scope.data = data;
                    $scope.data.ListNavBar = $dataHelper.toTree(data.ListNavBar, '', { cd: 'MenuCd', pcd: 'PMenuCd', childs: 'Childs' });
                    $ti();
                }
            }
        });
    };
    // Xử lý logout
    $scope.logout = function () {
        $pc({
            http: $http,
            url: '/ajx/adm-main.aspx/Logout',
            success: function () {
                window.location = '/adm/login.html';
            }
        });
    };

    // Ẩn/Hiện cửa sổ trái
    $scope.showHideLeftPane = function () {
        $pc(function () {
            if ($scope.variable.ShowLeftPane === false) {
                $scope.style.RightPane['margin-left'] = '240px';
                $scope.variable.ShowLeftPane = true;
            } else {
                $scope.style.RightPane['margin-left'] = '10px';
                $scope.variable.ShowLeftPane = false;
            };
            return false;
        });
    };
    // Xử lý thay đổi kích thước element
    $scope.resize = function () {
        $pc(function () {
            $("#leftPane").height($(window).height());
            $("#leftPane #leftContent").height($(window).height());
            $("#rightPane").height($(window).height());
        });
    };

    /* Định nghĩa các events */
    // Tiến hành lấy chuỗi resource
    $scope.getStrings();
    // Tiến hành xử lý init
    $scope.init();
    // Tiến hành thay đổi kích thước element
    $scope.resize();

    /* Đăng ký các events */
    // window.resize
    angular.element(window).bind('resize', function () {
        $scope.resize();
    });
});